HerramientasWeb Git |
Ubicación en el Menú |
---|
HerramientasWeb → Git |
Entornos de trabajo |
HerramientasWeb |
Atajo de teclado por defecto |
Ninguno |
Introducido en versión |
0.17 |
Ver también |
Ninguno |
Este comando permite gestionar el documento actual con GIT. GIT es un potente sistema de control de versiones de archivos, que puede gestionar diferentes versiones de archivos y hacer un seguimiento de los cambios.
Git es una herramienta compleja, considere la posibilidad de aprender los fundamentos de la misma antes de utilizar esta herramienta, para evitar operaciones erróneas que pueden causar la pérdida de datos. Hay una abundante literatura sobre GIT disponible y fácil de encontrar en Internet.
Requisito: Para poder utilizar este comando, el paquete gitpython debe estar instalado en tu sistema. En la mayoría de las distribuciones de linux, gitpython está disponible en los repositorios de software estándar como gitpython o python-git.
git log
.git diff
.
fcinfo
para hacer un diff textual.
El Formato de archivo FCStd de FreeCAD es un formato binario basado en zip, para el que Git no puede producir diffs adecuados. Esto significa que no puedes ver lo que ha cambiado entre una versión y otra, y también que cada nueva versión almacenada en el repositorio Git es una copia completa del archivo.
Aunque el segundo problema actualmente no tiene solución, el primero puede ser resuelto con una pequeña herramienta disponible en el código fuente de FreeCAD, llamada fcinfo. Se le puede decir a Git que utilice la utilidad fcinfo para imprimir un informe amigable de un archivo FCStd, y, cuando se le pida que produzca una diferencia entre dos archivos FCStd, producirá una diferencia entre los dos informes fcinfo en su lugar. Tenga en cuenta que esto es sólo un informe visual, una copia completa del archivo seguirá siendo almacenada internamente.
Ejemplo de un diff producido con fcinfo:
diff --git a/testhouse.FcStd b/testhouse.FcStd
index 08077b6..985b1d8 100644
--- a/testhouse.FcStd
+++ b/testhouse.FcStd
@@ -1,26 +1,25 @@
-Document: /tmp/43un09_testhouse.FcStd (442K)
- SHA1: 67c1985a45d93cba57d5bf44490897aba460100d
+Document: /tmp/zfXoDd_testhouse.FcStd (370K)
+ SHA1: db1cb5fca18af7bfdca849028f40550df4d845cb
Comment : This is a test house to showcase FreeCAD's BIM worflow and IFC export capabilities
Company : uncreated.net
CreatedBy : Yorik van Havre
CreationDate : Fri May 9 12:05:54 2014
FileVersion : 1
Id :
- Label : testhouse
- LastModifiedBy : Yorik van Havre
- LastModifiedDate : 2016-06-28T17:05:57-03:00
+ Label : testhouse2
+ LastModifiedBy : Yorik van Havre
+ LastModifiedDate : Sat Sep 13 20:46:36 2014
+
License : CC-BY 3.0
LicenseURL : http://creativecommons.org/licenses/by/3.0/
- ProgramVersion : 0.17R7800 (Git)
- TipName :
+ ProgramVersion : 0.15R3989 (Git)
Uid : 67e62d8a-6674-4358-92fe-615443be887a
- Objects: (231)
+ Objects: (221)
Annotation : Drawing::FeatureViewAnnotation
Annotation001 : Drawing::FeatureViewAnnotation
Annotation002 : Drawing::FeatureViewAnnotation
Annotation003 : Drawing::FeatureViewAnnotation
- Annotation004 : Drawing::FeatureViewAnnotation
- Annotation005 : Drawing::FeatureViewAnnotation
Array : Part::FeaturePython (9K)
Box : Part::Box (2K)
Building : App::DocumentObjectGroupPython
@@ -110,7 +109,7 @@ Document: /tmp/43un09_testhouse.FcStd (442K)
Floor : App::DocumentObjectGroupPython
Floor001 : App::DocumentObjectGroupPython
Floor002 : App::DocumentObjectGroupPython
- Frame : Part::FeaturePython (89K)
Cada archivo de FreeCAD contiene un número de suma de comprobación SHA1, que cambiará cada vez que se guarde el archivo, incluso si no se ha cambiado el contenido. Así que fcinfo siempre imprimirá algo, sin importar los cambios en el contenido.
Para habilitar el uso de fcinfo (sólo para Linux y Mac - PARAHACER: añadir instrucciones para Windows)
.gitattributes
en tu repositorio Git y añade la siguiente línea en él:*.FCStd diff=fcinfo
Añade las siguientes líneas al archivo .gitconfig
en tu directorio principal:
[diff "fcinfo"] textconv = /ruta/a/fcinfo
Alternativamente, si quieres invocar fcinfo con argumentos (por ejemplo, --gui
) utiliza este enfoque [1]:
[diff "fcinfo"] textconv = sh -c '/ruta/a/fcinfo --gui "$0"'
*.FCStd diff=fcinfo
.gitconfig
file in your home directory:[diff "fcinfo"]
textconv = /path/to/fcinfo
--gui
) use this approach:[diff "fcinfo"]
textconv = sh -c '/path/to/fcinfo --gui "$0"'XD
Note that if you are working in a collaborative project you may want to include the fcinfo tool in your repository, in that case the path is relative to your Git repository root directory.
If you are working on many projects that need fcinfo tool you can enable it globally for your user.
$HOME/.config/git/attributes
file and add the following line on it:*.FCStd diff=fcinfo
$HOME/.config/git/config
file:
git config --global diff.fcinfo.textconv "/path/to/fcinfo"
.freecad
package can use {{{1}}}
since it's already installed on their system.[diff "fcinfo"]
textconv = /path/to/fcinfo
Note that any configuration made in a repository basis overrides global configurations.